﻿using System;
using System.Linq.Expressions;

namespace XEnamel
{
	public interface IScopeManager
	{
		void EnterScope();
		void LeaveScope();

		bool IsSymbolNameValid(string name);
		Expression FindSymbol(string name);
		Expression CreateSymbol(string name, Type type = null);
		LabelTarget FindLabel(string name);
		LabelTarget CreateLabel(string name, Type type = null);
		LabelTarget VisitLabelTarget(string name, Type type = null);
	}
}